
## Глава 1. Что такое дизайн и архитектура? 25
### Цель? 26
### Пример из практики 27
### Заключение 33
## Глава 2. История о двух ценностях 35
### Поведение 36
### Архитектура 36
### Наибольшая ценность 37
### Матрица Эйзенхауэра 38
### Битва за архитектуру 39

## Глава 3. Обзор парадигм 43
### Структурное программирование 44
### Объектно-ориентированное программирование 44
### Функциональное программирование 45
### Пища для ума 45
### Заключение 46

## Глава 4. Структурное программирование 47
### Доказательство 48
### Объявление вредным 50
### Функциональная декомпозиция 51
### Формальные доказательства отсутствуют 51
### Наука во спасение 52
### Тестирование 52
### Заключение 53
## Глава 5. Объектно-ориентированное программирование 54
### Инкапсуляция? 55
### Наследование? 58
### Полиморфизм? 60
### Заключение 66
## Глава 6. Функциональное программирование 67
### Квадраты целых чисел 68
### Неизменяемость и архитектура 69
### Ограничение изменяемости 70
### Регистрация событий 72
### Заключение 73

## Глава 7. Принцип единственной ответственности 78
### Признак 1: непреднамеренное дублирование 80
### Признак 2: слияния 81
### Решения 82
### Заключение 84
## Глава 8. Принцип открытости/закрытости 85
### Мысленный эксперимент 86
### Управление направлением 90
### Сокрытие информации 90
### Заключение 90
## Глава 9. Принцип подстановки Барбары Лисков 91
### Руководство по использованию наследования 92
### Проблема квадрат/прямоугольник 92
### Содержание      7
### LSP и архитектура 93
### Пример нарушения LSP 94
### Заключение 95
## Глава 10. Принцип разделения интерфейсов 96
### Принцип разделения интерфейсов и язык 98
### Принцип разделения интерфейсов и архитектура 98
### Заключение 99
## Глава 11. Принцип инверсии зависимости 100
### Стабильные абстракции 101
### Фабрики 102
### Конкретные компоненты 104
### Заключение 104

## Глава 12. Компоненты 106
### Краткая история компонентов 107
### Перемещаемость 110
### Компоновщики 110
### Заключение 112
## Глава 13. Связность компонентов 113
### Принцип эквивалентности повторного использования
### и выпусков 114
### Принцип согласованного изменения 115
### Принцип совместного повторного использования 117
### Диаграмма противоречий для определения связности
### компонентов 118
### Заключение 119
## Глава 14. Сочетаемость компонентов 121
### Принцип ацикличности зависимостей 122
### Проектирование сверху вниз 128
### Принцип устойчивых зависимостей 129
### Принцип устойчивости абстракций 135
### Заключение 142


## Глава 15. Что такое архитектура 144
### Разработка 146
### Развертывание 146
### Эффективность работы 147
### Сопровождение 148
### Сохранение разнообразия вариантов 148
### Независимость от устройства 150
### Нежелательная почта 152
### Физическая адресация 153
### Заключение 154
## Глава 16. Независимость 155
### Варианты использования 156
### Эффективность работы 156
### Разработка 157
### Развертывание 157
### Сохранение разнообразия вариантов 158
### Разделение уровней 158
### Разделение вариантов использования 159
### Режим разделения 160
### Возможность независимой разработки 161
### Возможность независимого развертывания 161
### Дублирование 162
### Режимы разделения (еще раз) 163
### Заключение 165
## Глава 17. Границы: проведение разделяющих линий 166
### Пара печальных историй 167
### FitNesse 170
### Какие границы проводить и когда? 172
### О вводе и выводе 175
### Архитектура с плагинами 176
### Аргумент в пользу плагинов 177
### Заключение 178

## Глава 18. Анатомия границ 179
### Пересечение границ 180
### Ужасный монолит 180
### Компоненты развертывания 182
### Потоки выполнения 183
### Локальные процессы 183
### Службы 184
### Заключение 185
## Глава 19. Политика и уровень 186
### Уровень 187
### Заключение 190
## Глава 20. Бизнес-правила 191
### Сущности 192
### Варианты использования 193
### Модели запросов и ответов 195
### Заключение 196
## Глава 21. Кричащая архитектура 197
### Тема архитектуры 198
### Цель архитектуры 199
### А что насчет Веб? 199
### Фреймворки — это инструменты, а не образ жизни 200
### Тестируемые архитектуры 200
### Заключение 201
## Глава 22. Чистая архитектура 202
### Правило зависимостей 204
### Типичный сценарий 208
### Заключение 209
## Глава 23. Презентаторы и скромные объекты 210
### Шаблон «Скромный объект» 211
### Презентаторы и представления 211
### Тестирование и архитектура 212
### Шлюзы к базам данных 212

### Преобразователи данных 213
### Службы 214
### Заключение 214
## Глава 24. Неполные границы 215
### Пропустить последний шаг 216
### Одномерные границы 217
### Фасады 217
### Заключение 218
## Глава 25. Уровни и границы 219
### Охота на Вампуса 220
### Чистая архитектура? 221
### Пересечение потоков 224
### Разбиение потоков 224
### Заключение 226
## Глава 26. Главный компонент 228
### Конечная деталь 229
### Заключение 232
## Глава 27. Службы: большие и малые 233
### Сервисная архитектура? 234
### Преимущества служб? 234
### Проблема с животными 236
### Спасение в объектах 238
### Службы на основе компонентов 239
### Сквозные задачи 240
### Заключение 241
## Глава 28. Границы тестов 242
### Тесты как компоненты системы 243
### Проектирование для простоты тестирования 244
### Программный интерфейс для тестирования 245
### Безопасность 245
### Заключение 246

## Глава 29. Чистая встраиваемая архитектура 247
### Тест на профпригодность 250
### Привязка к оборудованию — узкое место 253
### Заключение 264

## Глава 30. База данных — это деталь 266
### Реляционные базы данных 267
### Почему системы баз данных настолько распространены? 268
### Сохранятся ли диски? 269
### Детали 270
### А производительность? 270
### История 270
### Заключение 272
## Глава 31. Веб — это деталь 273
### Бесконечный маятник 274
### Вывод 276
### Заключение 277
## Глава 32. Фреймворки — это деталь 278
### Авторы фреймворков 279
### Неравный брак 279
### Риски 280
### Решение 280
### Объявляю вас 281
### Заключение 281
## Глава 33. Практический пример: продажа видео 282
### Продукт 283
### Анализ вариантов использования 283
### Компонентная архитектура 285
### Управление зависимостями 286
### Заключение 287

## Глава 34. Недостающая глава 288
### Упаковка по уровням 289
### Упаковка по особенностям 290
### Порты и адаптеры 291
### Упаковка по компонентам 293
### Дьявол в деталях реализации 298
### Организация и инкапсуляция 299
### Другие режимы разделения 302
### Заключение: недостающий совет 304

### Архитектурная археология 306
### Профсоюзная система учета 307
### Laser Trim 314
### Контроль алюминиевого литья под давлением 318
4-TEL 319
### Компьютер зоны обслуживания 324
### Язык C 328
### BOSS 330
### pCCU 331
### DLU/DRU 333
### VRS 335
### Электронный секретарь 338
### Система командирования ремонтников 340
### ROSE 346
### Регистрационные экзамены для архитекторов 348
### Заключение 351